package org.example;

import java.util.Scanner;


public class test10 {
    public static void main(String[] args) {
        //金额转换
        //1.键盘录入一个金额
        Scanner sc = new Scanner(System.in);
        int money = 0;
        while (true) {
            System.out.println("请输入金额：");
            money = sc.nextInt();
            if(money>=0&&money<=9999999){
                break;
            }else{
                System.out.println("输入金额有误");
            }
        }
        String moneystr = "";
        while (true) {
            //2.获取数据上每一位数字
            int ge = money % 10;
            //3.把数字变成大写
            String capitalNumber = getCapital(ge);
            //拼接字符串，先右后左
            moneystr = capitalNumber + moneystr;
            //4.去掉刚刚获取过的那一位数字,重新获取
            money = money / 10;
            //5.
            //判断money循环结束条件
            if (money == 0) {
                break;
            }
        }
        //前面位置补零
        int count = 7 - moneystr.length();
        for (int i = 0; i < count; i++) {
            moneystr="零"+moneystr;
        }
        //添加单位
        String []arr={"佰","拾","万","仟","佰","拾","元"};
        String result="";
        for (int i = 0; i < moneystr.length(); i++) {
            result=result+moneystr.charAt(i)+arr[i];
        }
        //打印结果
        System.out.println(result);

        //号码截取
        Scanner sc1 = new Scanner(System.in);
        System.out.println("请输入手机号：");
        String phoneNumber =sc.next();
        //截取 substring (开始索引，结束索引) 包左不包右
        String start=phoneNumber.substring(0,3);
        String end=phoneNumber.substring(7);
        System.out.println(start+"****"+end);

        //打印人物身份证信息
        Scanner sc2=new Scanner(System.in);
        System.out.println("请输入身份证号：");
        String idNumber=sc.next();
        String year=idNumber.substring(6,10);
        String month=idNumber.substring(10,12);
        String day=idNumber.substring(12,14);
        System.out.println("出生年月日："+year+"年"+month+"月"+day+"日");
        //获取性别
        char sex=idNumber.charAt(16);
        int num=sex-48;
        if(num%2==0){
            System.out.println("性别：女");
        }else {
            System.out.println("性别：男");
        }
        //替换 .replace
        for (int i=6; i <12; i++) {
            idNumber=idNumber.replace(idNumber.charAt(i),'*');
        }
        System.out.println(idNumber);
        //StringBuilder相关运用
        String result1=new StringBuilder(idNumber).append("****").reverse().toString();
        System.out.println(result1);
    }
    //定义方法实现数字到大写的转换
    public static String getCapital(int number) {
         String[]arr={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖",};
         return arr[number];
    }
}

//StringBuilder 类
//StringBuilder 是一个可变的字符串类，它提供了一种高效的方式来修改字符串内容，而不会创建新的字符串对象。
//StringBuilder 类的主要特点包括：
//.append() 方法：用于在字符串的末尾追加字符、字符串或其他类型的数据。
//.insert() 方法：用于在指定位置插入字符、字符串或其他类型的数据。
//.delete() 方法：用于删除字符串中的指定范围的字符。
//.reverse() 方法：用于反转字符串的顺序。
//.toString() 方法：用于将 StringBuilder 对象转换为普通的字符串对象。
//StringBuilder 类的使用示例：
//StringBuilder sb = new StringBuilder("Hello");
//sb.append(" World");
//sb.insert(5, ", ");
//sb.delete(5, 7);
//String str = sb.reverse()
//String str.toString();
//String str.length() 方法：用于获取字符串的长度。
//链式编程：方法都写在一行依赖前面的结果再去调用后面的方法，用一个变量接收


//StringJoiner 类
//StringJoiner 是 Java 8 引入的一个新类，用于构建字符串，它提供了一种更简洁的方式来拼接字符串。
//StringJoiner 类的主要特点包括：
//.add() 方法：用于添加元素到字符串中。
//.merge() 方法：用于合并两个 StringJoiner 对象。
//.length() 方法：用于获取字符串的长度。
//.toString() 方法：用于将 StringJoiner 对象转换为普通的字符串对象。
//StringJoiner 类的使用示例：
//StringJoiner sj = new StringJoiner(", ", "[", "]"); 分割 前缀 后缀
//sj.add("apple").add("banana").add("orange");
//=>[apple, banana, orange]
//String str = sj.toString();
//String str = sj.length() 方法：用于获取字符串的长度。
